As one type of nonvolatile semiconductor memory, a NAND flash memory is known. For example, when writing data to the NAND flash memory, various types of voltages are applied to word lines. That is, in case of a write operation, to prevent erroneous writing in non-selected cells and improve write characteristics, voltage different from that of a selected word line are applied to non-selected word lines adjacent to the selected word line, or voltages are applied to the word lines at timings that differ depending on the respective word lines. Further, voltages that differ depending on each of read, write, and erase operations are applied to the word lines. Therefore, there is required a control signal which specifies a type of voltage to be applied and timing at which the voltage is applied in accordance with each word line.